home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 3: CDPD 3
/
Almathera Ten on Ten - Disc 3: CDPD3.iso
/
scope
/
101-125
/
scopedisk122
/
bassub
/
intuition.sub
< prev
next >
Wrap
Text File
|
1995-03-19
|
3KB
|
125 lines
'Subroutines for creating standard Amiga gadgets, windows, etc.
SUB DefChip(Buffer&,Size&)STATIC
SHARED MList&
Size&=Size&+8
Buffer&=AllocMem&(Size&,&H10001)
IF Buffer&>0 THEN
POKEL Buffer&,MList&
POKEL Buffer&+4,Size&
MList&=Buffer&
Buffer&=Buffer&+8
ELSE
ERROR 7
END IF
END SUB
SUB UnDef STATIC
SHARED MList&
WHILE MList&>0
Address& = PEEKL(MList&)
ListSize& = PEEKL(MList&+4)
FreeMem MList&, ListSize&
MList& = Address&
WEND
END SUB
SUB WinDef(bs&, x%, y%, b%, h%, IDCMP&, f&, gad&, T$,scrid&,scrflag%) STATIC
Size& = 48+LEN(T$)+1
DefChip bs&,Size&
POKEW bs& ,x% ' Left Corner
POKEW bs&+ 2,y% ' Top Corner
POKEW bs&+ 4,b% ' Width
POKEW bs&+ 6,h% ' Height
POKEW bs&+ 8,&HFFFF ' Detail- BlockPen
POKEL bs&+10,IDCMP& ' IDCMP Flags
POKEL bs&+14,f& ' Flags
POKEL bs&+18,gad& ' First Gadget
POKEL bs&+26,bs&+48 ' Title
IF scrflag%=15 THEN
POKEL bs&+30,scrid& 'Screen addr
END IF
POKEW bs&+46,scrflag% ' Screen Type
FOR i%=1 TO LEN(T$)
POKE bs&+47+i%,ASC(MID$(T$,i%,1))
NEXT
END SUB
SUB GadgetDef(bs&, nx&, x%, y%, b%, h%, f%, a%, T%, i&, txt&, si&, n%) STATIC
DefChip bs&,44& ' Gadget-Structure length
POKEL bs& ,nx& '*NextGadget
POKEW bs&+ 4,x% ' LeftEdge
POKEW bs&+ 6,y% ' TopEdge
POKEW bs&+ 8,b% ' Width
POKEW bs&+10,h% ' Height
POKEW bs&+12,f% ' Flags
POKEW bs&+14,a% ' Activation
POKEW bs&+16,T% ' GadgetType
POKEL bs&+18,i& ' GadgetRender
POKEL bs&+26,txt& '*GadgetText
POKEL bs&+34,si& ' SpecialInfo
POKEW bs&+38,n% ' GadgetID
END SUB
SUB IntuiText(bs&, c1%, x%, y%, T$, nx&) STATIC
Size&=20+LEN(T$)+1 ' Structure lewngth+ Text length+ Nullbyte
DefChip bs&,Size&
POKE bs& ,c1% ' FrontPen
POKE bs&+ 2,1 ' DrawMode
POKEW bs&+ 4,x% ' Left corner
POKEW bs&+ 6,y% ' Top corner
POKEL bs&+12,bs&+20 ' IText
POKEL bs&+16,nx& ' NextText
FOR i%=1 TO LEN(T$)
POKE bs&+19+i%,ASC(MID$(T$,i%,1))
NEXT
END SUB
SUB Border(bs&, x%, y%, c%, b%, h%) STATIC
DefChip bs&,48& ' Structure length+ Coordinate table
POKEW bs& ,x% ' Left corner
POKEW bs&+2,y% ' Top corner
POKE bs&+4,c% ' FrontPen
POKE bs&+7,8 ' Count
POKEL bs&+8,bs&+16 '*XY
FOR i%=0 TO 1
POKEW bs&+22+i%*4,h%-1
POKEW bs&+24+i%*4,b%-1
POKEW bs&+32+i%*4,1
POKEW bs&+38+i%*4,h%-1
POKEW bs&+40+i%*4,b%-2
NEXT
END SUB
SUB getstring$(s$,strgadinfo&) STATIC
STATIC i%
REM Returns string in buffer of a string gadget
REM strgadinfo& = variable containing address of string gadget info
REM
s$=""
FOR i%=0 TO PEEKW(strgadinfo&+16)-1
s$=s$+CHR$(PEEK(PEEKL(strgadinfo&)+i%))
NEXT i%
END SUB
SUB nullstr(bs&,s$)
STATIC i%
DefChip bs&,20&
FOR i%=1 TO LEN(s$)
POKE bs&+i%-1,ASC(MID$(s$,i%,1))
NEXT i%
END SUB
SUB strinfostruct(bs&,buffer&,undobuffer&,bufferpos%,maxchars%,disppos%,longint&,altkeymap&) STATIC
DefChip bs&,36
POKEL bs&,buffer&
POKEL bs&+4,undobuffer&
POKEW bs&+8,bufferpos%
POKEW bs&+10,maxchars%
POKEW bs&+12,disppos%
POKEL bs&+28,longint&
POKEL bs&+32,altkeymap&
END SUB
SUB propinfo(bs&,flags%,hpot%,vpot%,hbody%,vbody%) STATIC
DefChip bs&,22
POKEW bs&,flags%
POKEW bs&+2,hpot%
POKEW bs&+4,vpot%
POKEW bs&+6,hbody%
POKEW bs&+8,vbody%
END SUB